const utils = require('util')
const EventEmitter = require('events').EventEmitter

const Server = function(){
    console.log('init')
}

utils.inherits(Server, EventEmitter)

const s = new Server

s.on('abc', (user)=>{
    console.log('abc', user)
})

setTimeout(()=>{
    const user = '小明'
    s.emit('abc', user)
}, 1000)

// 例子中，我们先包含了 utils 模块，以便调用它的 inherits 方法。
// inherits 能够把 EventEmitter 类的方法添加到我们创建的 Server 类中。这意味着所有 Server 
// 的新实例都能够使用 EventEmitter 的方法。
// 然后我们包含了 events 模块。
// 但我们只想调用其模块中的 EventEmitter 类。
// 注 意，EventEmitter 是以大写字母开始命名的，
// 用来表示它本身是一个类。我们不 调用 createEventEmitter 方法，
// 因为不打算直接使用 EventEmitter 实例，
// 只 是想把它的方法绑定到我们要用的 Server 类上。